home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / pascal / tjoop11.zip / DLSTTEST.PAS < prev    next >
Pascal/Delphi Source File  |  1991-05-20  |  2KB  |  115 lines

  1. PROGRAM MyDList ;
  2.  
  3. USES
  4.        CRT ,
  5.        DListOBJ ,
  6.        Elements ,
  7.        BaseTypes ;
  8.  
  9.  
  10.  
  11.  
  12. VAR
  13.        dl                              : PDListOBJ ;
  14.        d                               : PElementOBJ ;
  15.        i                               : INTEGER ;
  16.        s                               : STRING ;
  17.        r                               : REAL ;
  18.  
  19.  
  20.  
  21.  
  22. BEGIN  {  *******  MAIN  *******  }
  23.  
  24.   WriteLn ;
  25.  
  26.   WriteLn ( 'Memory before operation                : ' , MemAvail : 5 ) ;
  27.  
  28.   dl := New ( PDListOBJ , Init ) ;
  29.  
  30.   dl^.Add ( New ( PStrOBJ , Init ( 'One!' ) ) ) ;
  31.   dl^.Add ( New ( PRealOBJ , Init ( 1.5 ) ) ) ;
  32.   dl^.Add ( New ( PStrOBJ , Init ( 'Two!' ) ) ) ;
  33.   dl^.Add ( New ( PRealOBJ , Init ( 2.5 ) ) ) ;
  34.  
  35.   WriteLn ( 'Memory with four items                 : ' , MemAvail : 5 ) ;
  36.  
  37.   d := PElementOBJ ( dl^.Get ) ;
  38.  
  39.   d^.Display ;
  40.  
  41.   Dispose ( d , Done ) ;
  42.  
  43.   WriteLn ( '  --  The last added!' ) ;
  44.  
  45.   WHILE ( dl^.PrevOne )
  46.    DO ;
  47.  
  48.   d := PElementOBJ ( dl^.Get ) ;
  49.  
  50.   d^.Display ;
  51.  
  52.   Dispose ( d , Done ) ;
  53.  
  54.   WriteLn ( '  --  The list head!' ) ;
  55.  
  56.   WHILE ( dl^.NextOne )
  57.    DO ;
  58.  
  59.   dl^.Add ( New ( PIntOBJ , Init ( 3 ) ) ) ;
  60.   dl^.Add ( New ( PRealOBJ , Init ( 3.5 ) ) ) ;
  61.   dl^.Add ( New ( PIntOBJ , Init ( 4 ) ) ) ;
  62.  
  63.   WHILE ( dl^.PrevOne )
  64.    DO ;
  65.  
  66.   WriteLn ( 'Memory with three more items           : ' , MemAvail : 5 ) ;
  67.  
  68.   i := 30000 ;
  69.   r := -100000 ;
  70.   s := 'HA HA!' ;
  71.  
  72.   REPEAT
  73.  
  74.     CASE dl^.TheType
  75.      OF
  76.  
  77.        STR_OBJ  :  dl^.SetData ( @s ) ;
  78.  
  79.        INT_OBJ  :  dl^.SetData ( @i ) ;
  80.  
  81.        REAL_OBJ :  dl^.SetData ( @r ) ;
  82.  
  83.  
  84.      ELSE
  85.  
  86.        WriteLn ( 'We have a problem!' ) ;
  87.  
  88.        END ;  {  CASE dl^.TheType  }
  89.  
  90.     UNTIL ( NOT ( dl^.NextOne ) ) ;
  91.  
  92.  
  93.   WHILE ( NOT ( dl^.Empty ) )
  94.    DO
  95.     BEGIN
  96.  
  97.       d := PElementOBJ ( dl^.Get ) ;
  98.  
  99.       d^.Display ;
  100.  
  101.       Write ( ' ' ) ;
  102.  
  103.       Dispose ( d , Done ) ;
  104.  
  105.       END ;  {  WHILE  }
  106.  
  107.   WriteLn ;
  108.  
  109.   WriteLn ( 'Memory after disposing of all elements : ' , MemAvail : 5 ) ;
  110.  
  111.   Dispose ( dl , Done ) ;
  112.  
  113.   WriteLn ( 'Memory after disposing of the stack    : ' , MemAvail : 5 ) ;
  114.  
  115. END .